// pages/category/index.js
// 引用用来发送请求的方法通过解构方式引用过来
import {
  request
} from '../../request/request';
import regeneratorRuntime from "../../lib/runtime/runtime.js";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 左侧的菜单数据
    leftMenuList: [],
    // 右侧的商品数据
    rightContent: [],
    // 接口的返回数据
    Cates: [],
    // 被点击的左侧菜单的索引
    currentIndex: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 先判断以下本地存储中有没有旧数据
    // 没有就发送请求
    // 有就判断数据是否过期，没有过期就使用本地中的旧数据就可


    // 获取本地中的数据
    const Cates = wx.getStorageSync('cates');
    // 判断
    if (!Cates) {
      // 不存在 发送请求
      this.getCates()
    } else {
      // 有数据 判断是否过期 定义过期时间10s 改成5分钟
      if (Date.now - Cates.time > 1000 * 10) {
        // 超时发送请求
        this.getCates()
      } else {
        // 使用旧数据
        this.Cates = Cates.data
        //  构造左侧菜单数据
        let leftMenuList = this.Cates.map(v => v.cat_name);
        // 构造右侧的商品数据
        let rightContent = this.Cates[0].children;
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
  },
  async getCates() {
    // request({
    //   url: '/categories'
    // }).then(res => {
    //   this.Cates = res
    //   // 把接口的数据存到本地中
    //   wx.setStorageSync('cates', {
    //     time: Date.now(),
    //     data: this.Cates
    //   })

    //   //  构造左侧菜单数据
    //   let leftMenuList = this.Cates.map(v => v.cat_name);
    //   // 构造右侧的商品数据
    //   let rightContent = this.Cates[0].children;
    //   this.setData({
    //     leftMenuList,
    //     rightContent
    //   })
    // })


    // 使用es7的async
    const res = await request({url: '/categories'})
       this.Cates = res
      // 把接口的数据存到本地中
      wx.setStorageSync('cates', {
        time: Date.now(),
        data: this.Cates
      })

      //  构造左侧菜单数据
      let leftMenuList = this.Cates.map(v => v.cat_name);
      // 构造右侧的商品数据
      let rightContent = this.Cates[0].children;
      this.setData({
        leftMenuList,
        rightContent
      })
  },
  // 左侧菜单的点击事件
  handleItemTap(e) {
    // 获取点击的索引
    // 给data中的currentindex赋值
    // 根据不同的索引渲染商品右侧的内容
    const index = e.currentTarget.dataset.index
    let rightContent = this.Cates[index].children;
    this.setData({
      currentIndex: index,
      rightContent
    })


    console.log(this.data.currentIndex)
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})